Distributed multimedia and continuous media applications, enabled by high-speed networks and switching technologies, include collaborative work systems, authoring systems, conference and distance learning systems, and interactive video.
One particular distributed multimedia application is video-on-demand, an application which requires a specialized server capable of supporting a large number of real-time continuous media streams. Most of the current methods of providing video-on-demand focus on designing the physical file system to support continuous media and on providing real-time guaranteed access to storage devices. The current methods are concerned with providing adequate storage device bandwidth to meet the requirements of the admitted multimedia streams. This approach, however, is incomplete in that it does not address the need of scheduling the CPU resources. Coordinated operation of the CPU, the memory and network transmissions of a video file server is needed. Further, a successful video-on-demand system needs to support multiple classes of traffic with diverse performance requirements.
The presence of traffic with diverse performance requirements in a video-on-demand system arises from the need to support both the real-time continuous media streams as well as interactive and unsolicited requests from the network. Real-time streams such as audio/video playback are periodic, time sensitive requests. Real-time streams require performance guarantees for high-throughput, bounded delay and low jitter. Real-time streams need to finish a given task at a particular time and the data needs to be paced as promised to the source requesting the task. Interactive requests, such as background file reads and writes across the network, are characterized by random arrival of requests. Interactive requests have a tolerance for bandwidth and delay variations but do require an adequate response time. The system has to provide some amount of service to the interactive requests even though timing of service is somewhat flexible compared to servicing real-time requests.
A conventional network based file server is not well suited to function as a video file server. The main reason is that conventional file servers are designed for small data files whose usage and semantics are fundamentally different from those of real-time continuous media objects. Real-time audio and video streams possess temporal characteristics that are not found in conventional data. The temporal characteristics of audio and video data are isochronous in nature. That is, finite sized samples must be generated and transmitted at fixed intervals. The isochronous nature of audio and video streams imposes a stringent requirement for sustained throughput, that is, guaranteed delivery of a sample, or a burst of samples, with bounded delay between successive samples or bursts. Unlike conventional file servers that provide access to resources on a best-effort basis, a video file server needs to allocate resources via a reservation scheme, in order to provide guaranteed throughput and bounded delay to each admitted client.
In addition to the problems associated with scheduling isochronous data, the usual scheduling problems of preventing livelocks, and maintaining fairness and stability under overloads need to be handled. Prior art does not address the issues of scheduling multiple classes of tasks with diverse performance requirements and admissions control for access to system resources of a file server.
It remains desirable to have a communications system which accommodates traffic with diverse performance requirements, maintains performance guarantees and remains stable during overloads, while achieving high utilization of system resources.